Large scale shared resource pools such as private and public clouds are being used to host many kinds of applications. In many instances, virtualization is employed in the resource pools. Virtual machines (VMs) are created and run on a physical machine to host applications. A VM is a software implementation of a machine that executes programs like a physical machine. VMs may be used to run multiple OS environments on the same computer in isolation from each other and each VM may host one or more applications. It is common for modern processors to run virtual machines, and the VMs may share caches, memory, and other resources.